[otap-dataflow] add transport header infrastructure#2539
Merged
lquerel merged 12 commits intoopen-telemetry:mainfrom Apr 7, 2026
Merged
[otap-dataflow] add transport header infrastructure#2539lquerel merged 12 commits intoopen-telemetry:mainfrom
lquerel merged 12 commits intoopen-telemetry:mainfrom
Conversation
…des and propagating headers in exporter nodes. Exposed helper capture and propagation tools in the effect_handler for receiver and exporter nodes to use
… to be pub(crate)
rust/otap-dataflow/crates/config/src/transport_headers_policy.rs
Outdated
Show resolved
Hide resolved
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #2539 +/- ##
==========================================
+ Coverage 88.36% 88.40% +0.03%
==========================================
Files 615 618 +3
Lines 223313 224729 +1416
==========================================
+ Hits 197330 198671 +1341
- Misses 25459 25534 +75
Partials 524 524
🚀 New features to boost your workflow:
|
albertlockett
approved these changes
Apr 6, 2026
lquerel
requested changes
Apr 6, 2026
Contributor
lquerel
left a comment
There was a problem hiding this comment.
Few minor things to fix/improve and I think we are ready to go,
rust/otap-dataflow/crates/config/src/transport_headers_policy.rs
Outdated
Show resolved
Hide resolved
rust/otap-dataflow/crates/config/src/transport_headers_policy.rs
Outdated
Show resolved
Hide resolved
rust/otap-dataflow/crates/config/src/transport_headers_policy.rs
Outdated
Show resolved
Hide resolved
rust/otap-dataflow/crates/config/src/transport_headers_policy.rs
Outdated
Show resolved
Hide resolved
lquerel
approved these changes
Apr 6, 2026
Contributor
lquerel
left a comment
There was a problem hiding this comment.
LGTM. Thanks for these changes.
Merged
via the queue into
open-telemetry:main
with commit Apr 7, 2026
962ac30
68 of 69 checks passed
jmacd
reviewed
Apr 7, 2026
| /// is valid in both HTTP and gRPC metadata. | ||
| #[derive(Clone, Debug, Default, PartialEq, Eq)] | ||
| pub struct TransportHeaders { | ||
| headers: Vec<TransportHeader>, |
Contributor
There was a problem hiding this comment.
I was somehow expecting to see an Rc<> or Arc<> here so that cloning a context does not clone the vector of headers. (Discussion topic.)
Contributor
There was a problem hiding this comment.
I missed this one. Thank you
@Chanly could you create a follow up PR to improve the cloning. Thanks
Open
1 task
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Change Summary
Update the OtapPdata Context with the transport_headers field, so that OtapPdata can carry the headers through the pipeline.
Defined the TransportHeadersPolicy with HeaderCapturePolicy and HeaderPropagationPolicy, update the Policies to have a transport_headers field. Receiver and Exporter nodes can also define HeaderCapturePolicy and HeaderPropagationPolicy respectively, these definitions will override any top level HeaderCapturePolicy and HeaderPropagationPolicy rules.
Exposed the policy to the Receiver and Exporter nodes via the EffectHandler with helper functions that apply the policies on a iterator of key value pairs (for receiver nodes) and transport_headers (for exporter nodes)
What issue does this PR close?
OtapPdata#2508How are these changes tested?
unit tests and integration tests
Are there any user-facing changes?
no